A Program Slicer Using Def-Slice-Use Tables for Efficiently Slicing Both User-Defined and Library Functions
نویسندگان
چکیده
Program slicing is a technique for statically analyzing a program and extracting an executable sub-program, which is called a program slice, from the original program. This technique has been widely applied to program testing, debugging and maintenance. This paper presents a slicing method for extracting program slices from a program that calls library functions, which are provided as object code. The method this paper presents analyzes dependence relationships between library functions using global data that are referred to by the library functions but not explicitly declared in a program. In this method, before slicing a program with respect to a slicing criterion, a DefSlice-Use table will be generated that stores slice information for each function in the program by slicing these functions in advance, and then the program can be efficiently sliced using this table. The paper also illustrates some examples of program slicing using a program slicer LibSlicer that implements this method. key words: control dependence, data dependence, library function, program dependence graph, program slice
منابع مشابه
Kaveri: Delivering the Indus Java Program Slicer to Eclipse
This tool paper describes a modular program slicer for Java built using the Indus program analysis framework along with it’s Eclipse-based user interface called Kaveri. Indus provides a library of classes that enables users to quickly assemble a highly customized non-system dependence graph based inter-procedural program slicer capable of slicing concurrent Java programs. Kaveri is an Eclipse p...
متن کاملEnabling Certification through an Integrated Comprehension Approach
ion, by virtue of producing an abstract model similar to the program model, works in a manner that facilitates bottom-up comprehension. It thus forms a perfect foil for slicing by (automatically) providing program models to the analyst at specified levels of abstraction, that can be used to form the hypotheses upon which the slicing criteria are based upon. Further, the abstracted model can be ...
متن کاملSlicing of Constraint Logic Programs
Abstract. Slicing is a program analysis technique originally developed for imperative languages. It facilitates understanding of data flow and debugging. This paper discusses slicing of Constraint Logic Programs. Constraint Logic Programming (CLP) is an emerging software technology with a growing number of applications. Data flow in constraint programs is not explicit, and for this reason the c...
متن کاملAn Incremental Slicing Method for Functional Programs
Several applications of slicing require a program to be sliced with respect to more than one slicing criterion. Program specialization, parallelization and cohesion measurement are examples of such applications. ese applications can benet from an incremental static slicing method in which a signicant extent of the computations for slicing with respect to one criterion could be reused for ano...
متن کاملA New Approach for Concurrent Program Slicing
Regarding the progress made in model analysis, more complex models, and consequently more complex programs can now be analyzed. However, this remains a difficult task in particular for concurrent programs which induce a lot of combinatory. Another way to reduce this complexity is to use program decomposition. Program decomposition technics extract a part of a given program while preserving the ...
متن کامل